Skip to main content

Orchestrator

The Orchestrator is a multi-phase planner that turns a pool of unassigned orders into a committable plan — stack vehicle allocation, driver allocation, and route optimization phases in sequence.

When to Use the Orchestrator

Use the Orchestrator for:

  • Batch dispatching (50+ deliveries across 10 or more drivers)
  • Mid-day re-sequencing when conditions change
  • Route optimization without reassigning drivers
  • Capacity-first allocation followed by driver assignment
  • Single-phase runs on existing assignments

Available Phases

Each phase runs against the order pool using a configurable engine, producing a preview-able and adjustable plan.

ModeDescription
assign_vehiclesAllocate orders to vehicles by capacity, location, and constraints
assign_driversMatch drivers to vehicles/orders via shift schedules and skills
optimize_routesRe-sequence stops for minimum distance/time
allocateLegacy single-pass driver + vehicle assignment

Engines

EngineDescription
GreedyFast first-fit allocation — suitable for simpler scenarios
VROOMHigh-quality optimization with time windows, capacity, and multi-stop support

Constraints Respected

EntityConstraints
OrdersRequired skills, time windows, scheduled-at time, priority (0–100)
DriversSkills, shift window, online status, maximum travel time
VehiclesCapacity weight (kg), capacity volume (m³), current location

Workflow

  1. Open Operations → Orchestrator
  2. Review the pool of unassigned orders
  3. Build phases — set mode, engine, and options for each
  4. Run phases (executed sequentially)
  5. Review the generated plan and adjust assignments if needed
  6. Commit — creates driver manifests

Phase Configuration Options

OptionDescription
LabelCustom name for this phase
ModeAllocation mode (see above)
EngineOptimization engine
Order statusesWhich order statuses to include
Balance workloadDistribute orders evenly across drivers
Respect skillsOnly assign orders to drivers with required skills
Respect capacityOnly assign orders that fit vehicle capacity
Return to depotInclude return trip in route calculations
Auto-commitAutomatically commit without manual review

Manifest Output

After committing a plan, the Orchestrator generates a Manifest per driver containing:

  • Estimated total distance and duration
  • Stop sequence numbers
  • Arrival time estimates per stop
  • Assigned driver and vehicle

Each stop in the manifest is a ManifestStop record linked to a specific order.

Unassigned Orders

Orders that cannot be allocated are flagged with a reason:

  • No available driver matching the required skills
  • Vehicle capacity exceeded
  • Impossible time window
  • No vehicle available in the required service area

These orders remain in the unassigned pool and can be manually dispatched or re-run in the next Orchestrator cycle.